/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador;

import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.ext.DatabaseClosedException;
import com.db4o.ext.DatabaseReadOnlyException;
import com.db4o.ext.Db4oIOException;
import com.db4o.query.Predicate;
import java.util.List;
import modelo.Classe;

/**
 *
 * @author Ronaldo
 */
public class GerenciarClasse {

    private static ObjectContainer banco = Db4o.openFile("Dados/Classe.db40");

    public static ObjectContainer conectar() {
        return banco;
    }

    public static void desconectar() {
        banco.close();
    }

    public boolean gravarPessoa(Classe classe) {

        try {
            banco.store(classe);
            return true;
        } catch (DatabaseClosedException | DatabaseReadOnlyException e) {
            System.out.println("Erro:" + e.getMessage());
            return false;
        } finally {
        }
    }

    public int localizarUltimoCodigo() {
        try {
            List<Classe> lista = banco.query(new Predicate<Classe>() {

                @Override
                public boolean match(Classe o) {
                    return true;
                }
            });
            if (!lista.isEmpty()) {
                return lista.get(lista.size() - 1).getCodigo();
            } else {
                return 0;
            }
        } catch (Db4oIOException | DatabaseClosedException e) {
            return 0;
        } finally {
        }
    }

    public Classe localizarDescricao(final String descri) {
        try {
            List<Classe> lista = banco.query(new Predicate<Classe>() {

                @Override
                public boolean match(Classe o) {
                    return o.getNome().contains(descri);
                }
            });
            if (!lista.isEmpty()) {
                return lista.get(0);
            } else {
                return null;
            }
        } catch (Db4oIOException | DatabaseClosedException e) {
            return null;
        } finally {
        }

    }

    public List<Classe> localizarTodos() {
        try {
            List<Classe> lista = banco.query(Classe.class);
            return lista;

        } catch (Db4oIOException | DatabaseClosedException e) {
            System.out.println("Erro:" + e.getMessage());
        } finally {
        }
        return null;
    }
}
